In Accordance with 37 C.F.R sec. 1.77(6) and 37 C.F.R. sec 196(c) reference is made to a microfiche appendix. The appendix contains 1 microfiche containing 28 total frames.
1. Field of the Invention
The present invention relates to data communications and, more particularly, to computer networks.
2. Prior Art
Reference is now made to FIG. 1. In general, the movement of data from one computer application to a network is accomplished through a collection of data protocols typically depicted as layers or a stack 70. FIG. 1 illustrates data movement through the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols from an application to a network. As shown, data from the application layer 50 is first passed to a transport layer consisting of several protocols used for various purposes. The TCP portion 62 of the transport layer organizes data into packets and provides reliable packet delivery across a network through the IP layer 51. (TCP is said to be xe2x80x9cconnection orientedxe2x80x9d in that TCP checks to see if the data arrived at its destination and will re-send if it did not.) UDP 61 or User Datagram Protocol also moves data to the IP layer 51, but unlike TCP 62 does not guarantee reliable packet delivery. Lastly, the Internet Control Message Protocol or ICMP 66 is used to report network errors and if a computer is available on the network.
From the transport layer 60-62 the data is passed to the Internet Protocol (IP) Layer 51 responsible for delivering TCP 62 and UDP 61 packets across a network. IP 51 transfers the data packets to the data link and physical layer 52, i.e., network interface card (NIC). For an application to receive data the process is simply reversed.
Before a computer application can send data it must know the physical address of the computer it wants to send data to, i.e., what is the physical or hardware address corresponding to the IP address of the receiving computer? In general, the physical address is found by the computer in the computer""s Address Resolution Protocol (ARP) tables. The address information is automatically stored by the TCP/IP ARP utility. The ARP utility learns of the physical address of a receiving computer""s network interface card (NIC) by way of an ARP request. The request is generated when a computer application has requested that data be sent to a particular IP address but the IP address does not have a corresponding physical address in the ARP table. The ARP utility then sends a broadcast message on the data link requesting that a computer with a specific IP address return its physical address. The problem is if the computer is not available due to a failed data link, i.e., the computer is unavailable on the network, then the data is not transmitted and an error message would be generated.
In some instances a router may be used to route the data around a failed network depending on where the failure occurs. If the failure of the network is on the transmission side of the router then the router may be able to reroute the data if there are alternate networks available. However, a router falls short of a solution in that if the network failure occurs on the reception side of the router, i.e., the router never sees the data, then the router would not know that it has failed to receive data. Again, the data would not be transmitted and an error message would be generated. In general, a router is an independent agent, which acts as an intermediary through which data messages may pass.
If the computer is available it will return its physical address to the requesting computer. Once returned the address is loaded into the ARP table for current and future use. In addition, every other computer on the network will also see the address information and store the data on its own ARP table. This process of gathering physical addresses is well known and described in prior art.
It is a first object and advantage of this invention to provide improved network availability that embodies two parallel network interface cards per computer on a first subnet and a second subnet, where each subnet has the same subnet mask, and a method for rerouting data to the second subnet if the first subnet fails or otherwise becomes unavailable.
In accordance with one method of the present invention, a method for providing alternate data paths between a sending computer and a receiving computer is provided. The method comprises the steps of periodically receiving broadcasted data through a first subnet data link and through a second subnet data link. Reception of the broadcasted data on the subnets is used to indicate status of the respective subnets. A failure to receive the broadcasted data forces a change in the local routing tables in the sending computer and the receiving computer.
In accordance with another method of the present invention, a method is provided for providing alternate data links between computers. The method comprises the steps of sending data from a first computer on a first data link and on a second data link, and subsequently receiving the data at a second computer on the first data link and the second data link, or, in the alternative, detecting an inactive first data link or an inactive second data link. If an inactive data link is detected then the routing tables in the first computer and the second computer are reconfigured to redirect the data to the active link.
In accordance with one embodiment of the present invention, a system for providing data links between computers is provided. The system comprises a sending computer with a data routing table and two network interface cards (NICs). The system further includes a receiving computer also having a data routing table and two NICs. In addition, each of the NICs have the same network subnet mask and are connected to each other. For example, the first NIC in the sending computer is connected to the first NIC in the receiving computer thus comprising a first data link. A similar connection is made for the other two NICs comprising the second data link. Lastly, the system provides means for detecting a failure on the first data link and means for switching from the first data link to the second data link upon detection of the failure of the first data link and means for restoring the first data link when the failed link has been restored.
A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for providing alternate sending data paths between a first and second computer is provided. The first and second computer comprises a peer-to-peer environment and the alternate sending data paths have a first and second data path. The method comprises the steps of sending a first data package from the first computer on the first data path, sending a second data package from the first computer on the second data path, receiving the first data at the second computer on the first data path, and receiving the second data at the second computer on the second data path. The method continues to detect an inactive first data path or an inactive second data path and reconfigures routing tables in the first computer and the second computer when an inactive data path is detected.